A computer network generally includes a number of devices, including switches and routers, connected so as to allow communication among the devices. The devices are often categorized into two classes: end stations such as work stations, desktop PCs, printers, servers, hosts, fax machines, and devices that primarily supply or consume information; and network devices such as switches and routers that primarily forward information between the other devices. Each of the devices has one or more circuit boards, a microprocessor and a memory, and runs a control program. The network devices are ordinarily operated continuously. Accurate information about the status of a device, its characteristics, and other information must be available on a continuous basis in order for a network administrator to properly maintain such a network.
Management of a large, complicated network made up of diverse devices is made easier by mechanisms that allow information about devices in the network to be viewed at a workstation. For example, it is desirable to know the name, manufacturer, software version, and other information about each device in the network. It is highly desirable to obtain this information in an automated way at a workstation, without requiring a manager to walk around the network and physically examine each network device.
Network management systems address this general need. To monitor the status of a device in the network, a network management station transmits a message requesting information to a software program or agent running on the target device. In response, the agent sends a message back to the network management station. The communications are carried out according to an agreed-upon protocol, such as the Simple Network Management Protocol (SNMP). The communications can be done over the network ("in-band") or by directly contacting a device through means separate from the network in which the device is used ("out of band"). In some configurations, the management station sends a request for information to a proxy rather than the actual device; the proxy then interacts with the device to decide what the response should be, and replies to the management station.
Networks usually consist of many different types of data switching and routing devices. Each device can have different physical characteristics. New devices, with characteristics that are presently unknown, are constantly being developed. In addition, the characteristics of many network devices may change over time. For example, characteristics of the network devices change when subsystems like boards, network interface modules, and other parts are added or removed from a device. However, maintaining a network requires network administrators and managers to have up-to-date network device information constantly at their fingertips. This need is complicated by the fact that most networks operate continuously, and it is not practical to turn the network or a device off in order to learn the status of a device.
One approach is to provide a network management system that presents a graphical view of the arrangement and interconnections of network devices on the screen of a workstation. The network is represented as a set of miniature icons, each of which represents a network device, interconnected by lines that represent electrical connections. An example of such a system is the Cisco Works for Switched Internetworks (CWSI) product available from Cisco Systems, Inc., of Santa Clara, Calif. However, the geographic scope of a network can present other difficulties in using this type of network management tool. A network can connect multiple buildings of an office campus, or multiple facilities in different cities. Networks of this type often have thousands of devices. As a result, it is impractical to view a graphical representation of the entire network. Therefore, it is desirable to establish groups of devices in the network and to provide a view of only devices that are in each group.
Past approaches generally have offered only static views of a network, in which the members of a group or view are statically tied to a group identifier. The user can request and display the members of a group, but the user cannot specify the way that group membership is determined.
Another past approach is to provide a limited form of dynamic view, in which the user can specify members of a view that are statically tied to the view. For example, the user can create a view called "Finance" that contains, as members of the view, information about network devices located in the Finance department of an organization. However, the devices are statically tied to the view, and when the network configuration is changed the user must manually update the view to add or delete new members. It is highly desirable to respond to requests to perform an operation involving a group of devices by resolving the devices that are in the group at the time the requests are made.
Based on the foregoing, there is a clear need for mechanisms of establishing groups of devices in a network and viewing network device information that are adaptable to a rapidly changing network environment.
It is also desirable to have a mechanism that can accept a definition of the elements to be displayed in a view and dynamically determine the members of the view.
There is also a need for a mechanism that can receive a set of filtering criteria that define elements to be displayed in a view. It is also desirable to have a viewing mechanism for network device information that can flexibly provide views of the network device information, in a way that is extensible to new kinds of network devices and information.
It is also desirable to have a network information grouping system that can establish groups of devices in a network defined by criteria that devices in the device group must satisfy.
It is also desirable to have such a network information grouping system that can persistently store information about the groups, such as the criteria that must be satisfied for membership in a group, in one or more persistent storage mechanisms, for example as data in a file or tables in a relational database.
It is also desirable to have a network information collection system that can determine current membership of devices in a group dynamically and in response to requests to perform operations involving a group of devices.